/*
 * Copyright 2016. chenshufei
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package sz.szsmk.citizencard.ioc.dzsmkcompontent;

import dagger.Component;
import sz.szsmk.citizencard.ioc.PerActivity;
import sz.szsmk.citizencard.ioc.dzsmkmodule.PresenterModule;
import sz.szsmk.citizencard.mvp.dzsmkpresenter.ApplicationAuthorPresenter;
import sz.szsmk.citizencard.mvp.dzsmkpresenter.BankPresenter;
import sz.szsmk.citizencard.mvp.dzsmkpresenter.BillPresenter;
import sz.szsmk.citizencard.mvp.dzsmkpresenter.ElecCitizenCardPresenter;
import sz.szsmk.citizencard.mvp.dzsmkpresenter.FAQPresenter;
import sz.szsmk.citizencard.mvp.dzsmkpresenter.GesturePresenter;
import sz.szsmk.citizencard.mvp.dzsmkpresenter.IdentityCodePresenter;
import sz.szsmk.citizencard.mvp.dzsmkpresenter.MainActPresenter;
import sz.szsmk.citizencard.mvp.dzsmkpresenter.MainFragmentPresenter;
import sz.szsmk.citizencard.mvp.dzsmkpresenter.MinePresenter;
import sz.szsmk.citizencard.mvp.dzsmkpresenter.MyBankCardPresenter;
import sz.szsmk.citizencard.mvp.dzsmkpresenter.MyCitizenCardPresenter;
import sz.szsmk.citizencard.mvp.dzsmkpresenter.PayPwdSetOrModifyPresenter;
import sz.szsmk.citizencard.mvp.dzsmkpresenter.PersonInfoEditPresenter;
import sz.szsmk.citizencard.mvp.dzsmkpresenter.RealNameAuthenticationPresenter;
import sz.szsmk.citizencard.mvp.dzsmkpresenter.RealPresenter;
import sz.szsmk.citizencard.mvp.dzsmkpresenter.RechargePresenter;
import sz.szsmk.citizencard.mvp.presenter.CalendarSignInPresenter;
import sz.szsmk.citizencard.mvp.presenter.SignInPresenter;


/**
 * <br /> author: chenshufei
 * <br /> date: 16/1/13
 * <br /> email: chenshufei2@sina.com
 */
@PerActivity
@Component(dependencies = ApplicationComponent.class, modules = PresenterModule.class)
public interface PresenterComponent {

    void inject(MainFragmentPresenter mainFragmentPresenter);

    void inject(MainActPresenter mainActPresenter);

    void inject(RealPresenter realPresenter);

    void inject(RealNameAuthenticationPresenter realNameAuthenticationPresenterr);

    void inject(BillPresenter billPresenter);

    void inject(MinePresenter minePresenter);

    void inject(BankPresenter bankPresenter);

    void inject(PayPwdSetOrModifyPresenter payPwdSetOrModifyPresenter);

    void inject(RechargePresenter rechargePresenter);

    void inject(MyBankCardPresenter myBankCardPresenter);

    void inject(FAQPresenter faqPresenter);

    void inject(PersonInfoEditPresenter personInfoEditPresenter);

    void inject(MyCitizenCardPresenter myCitizenCardPresenter);

    void inject(ElecCitizenCardPresenter elecCitizenCardPresenter);

    void inject(GesturePresenter gesturePresenter);

    void inject(IdentityCodePresenter identityCodePresenter);

    void inject(ApplicationAuthorPresenter applicationAuthorPresenter);

    void inject(SignInPresenter signInCalendarPresenter);

    void inject(CalendarSignInPresenter calendarSignInPresenter);
}
